package com.labweb.beans;

import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

import com.labweb.entidades.SolicitacaoSoftware;
import com.labweb.servicos.SolicitacaoSoftwareService;

public class JulgarSolicitacaoSoftware {
	private SolicitacaoSoftware softwareJulgar;
	private List<SolicitacaoSoftware> solicitacoessoftwares = new ArrayList<SolicitacaoSoftware>();

	public JulgarSolicitacaoSoftware(){
		this.softwareJulgar = null;
		this.solicitacoessoftwares = new SolicitacaoSoftwareService().listarTodasPendentes();
	}
	
	
	public List<SolicitacaoSoftware> getSolicitacoessoftwares() {
		return solicitacoessoftwares;
	}


	public void setSolicitacoessoftwares(
			List<SolicitacaoSoftware> solicitacoessoftwares) {
		this.solicitacoessoftwares = solicitacoessoftwares;
	}



	public SolicitacaoSoftware getSoftwareJulgar() {
		return softwareJulgar;
	}


	public void setSoftwareJulgar(SolicitacaoSoftware softwareJulgar) {
		this.softwareJulgar = softwareJulgar;
	}


	public String aprovar() {
		FacesContext context = FacesContext.getCurrentInstance();
		try {
			this.solicitacoessoftwares.remove(this.softwareJulgar);
			this.softwareJulgar.setStatus(1);
			new SolicitacaoSoftwareService().salvar(softwareJulgar);
			FacesMessage msg = new FacesMessage(
			"Software marcado como instalado!");
			msg.setSeverity(FacesMessage.SEVERITY_INFO);
		context.addMessage(null, msg);
		} catch (Exception e) {
			e.printStackTrace();
			FacesMessage msg = new FacesMessage(
			"Erro inesperado ao marcar software!");
			msg.setSeverity(FacesMessage.SEVERITY_ERROR);
			context.addMessage(null, msg);
		}
		return null;
	}
	
	public String recusar() {
		FacesContext context = FacesContext.getCurrentInstance();
		try {
			this.solicitacoessoftwares.remove(this.softwareJulgar);
			this.softwareJulgar.setStatus(-1);
			new SolicitacaoSoftwareService().salvar(softwareJulgar);
			FacesMessage msg = new FacesMessage(
			"Software marcado como recusado!");
			msg.setSeverity(FacesMessage.SEVERITY_INFO);
		context.addMessage(null, msg);
		} catch (Exception e) {
			e.printStackTrace();
			FacesMessage msg = new FacesMessage(
			"Erro inesperado ao marcar software!");
			msg.setSeverity(FacesMessage.SEVERITY_ERROR);
			context.addMessage(null, msg);
		}
		return null;
	}
}
